package com.jishuo.nontax.bfc.dao;

import com.jishuo.base.bean.ErrorCodeEnum;
import com.jishuo.nontax.bean.message.*;
import com.jishuo.nontax.bean.vo.CheckDataVO;
import com.jishuo.nontax.bean.vo.NumAmtVO;
import com.jishuo.nontax.bean.vo.PunishDetailInfoVO;
import com.jishuo.nontax.bean.vo.PunishInfoVO;
import com.tongtech.jms.ra.core.Options;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.List;

/**
 * @author :hanlipeng
 * @description :
 * @create :2022-12-22 13:49:00
 */
@Mapper
public interface PunishMapper {


    /**
     * 查询滞纳金
     *
     * @param punishbillnum  罚没票据号
     * @return
     */
    PunishInfoVO findPunishLatefee(String punishbillnum);



    /**
     * 添加罚没详细信息
     * @param punishDetailInfoVO  罚没详细对象
     * @return
     */
    int insertPunishDetailInfo(PunishDetailInfoVO punishDetailInfoVO);

    /**
     * 添加罚没单据
     * @param punishInfo  罚没对象
     * @return
     */
    int insertPunishInfo(PunishInfoVO punishInfo);

    /**
     * 修改罚没单据
     * @param punishInfo  罚没对象
     * @return
     */
    int updatePunishInfo(PunishInfoVO punishInfo);



    /**
     * 根据sn修改状态
     * @param sn 标文标识
     * @param billstate 状态
     * @return
     */
    int updatePunishInfoState(@Param("sn") String sn, @Param("billstate") String billstate);



    /**
     * 根据流水号删除罚没详细信息
     * @param punishinfoid 罚没详细信息流水号
     * @return
     */
    int deletePunishdetail(long punishinfoid);

    /**
     * 根据票据年度,单位id, 处罚书查询做大流水号
     * @param punishInfoVO  罚没对象
     * @return
     */
      int  findPunishMax(PunishInfoVO punishInfoVO);

    /**
     * 根据票据年度,单位id, 处罚书统计个数
     * @param punishInfoVO
     * @return
     */
      int findPunishCount(PunishInfoVO punishInfoVO);

    /**
     * 发送消息时更新messageid,罚没金额
     *
     * @param punishInfoVO
     * @return
     */
    int updateMsgPunish(PunishInfoVO punishInfoVO);

    /**
     * 新增一个空的罚没单据
     *
     * @param punishInfoVO  罚没对象
     * @return
     */
    int insertBlankPunish(PunishInfoVO punishInfoVO);

    /**
     * 根据流水号修改滞纳金状态
     * @param punishInfoVO  罚没对象
     * @return
     */
    int updatePunishState(PunishInfoVO punishInfoVO);

    /**
     * 添加一个空的交罚单据
     * @param punishInfoVO  罚没对象
     * @return
     */
    int  insertStatePunish(PunishInfoVO punishInfoVO);

    NumAmtVO selectPunisInfoNumAmt(@Param("bankid")String bankid, @Param("paybankdt")String paybankdt);

    int deletePunishfiance(@Param("bankid")String bankid, @Param("paybankdt")String paybankdt,@Param("bankaffirm")String bankaffirm);

    int savePunishfiance(CheckDataVO checkDataVO);

    //页面
    List<PunishInfoVO> findPunishPage(PunishInfoVO punishInfoVO);

    PunishInfoVO getPunish(Long punishinfoid);

    int updateIsbankaffirm(Long punishinfoid);

    int updateIllegalactivityBankAffirm(@Param("billnum")String billnum,@Param("bankid")Long bankid,@Param("isnohere")int isnohere,@Param("isspecialbill")int isspecialbill,@Param("specialbillnum")String specialbillnum,@Param("paybankdt") String paybankdt,@Param("bankaffirm") String bankaffirm,@Param("bankstation")String bankstation,@Param("paywaycode")int paywaycode,@Param("messageid") String messageid,@Param("nowtime") String nowtime);

    SetPayinfo getActiviInfo(String billnum);

    List<PunishInfoVO> findPunishByid(List<String> billids);

    List<PunishInfoVO> findPunish(@Param("billids") List<String> billids,@Param("accountcode") String accountcode);
}

